<?php

class grade_category {
	
	private $courseid = NULL;
	
	private $fullname = '';
	
	function __construct() {
		
	}
	
	function __destruct() {
		
	}
	
	function set_course_id($courseid) {
		$this->courseid = $courseid;
	}
	
	function set_fullname($fullname) {
		$this->fullname = $fullname;
	}
	
	function is_exist() {
		global $DB;
		
		$sql = file_get_contents(__DIR__ . '/sql/get_grade_category.sql');
		
		$stmt = $DB->prepare($sql);
		$stmt->bind_param('is', $this->courseid, $this->fullname);
		$stmt->execute();
		return ($stmt->get_result()->fetch_array(MYSQLI_ASSOC) !== NULL) ? true : false;
	}
	
	/**
	 * Берет идентификатор базовой категории для курса.
	 * Она будет являться родителем категории для полугодия.
	 * Идентификатор курса берется из внутренней переменной класса
	 * @return int
	 */
	private function get_parent_category() {
		global $DB;
		
		$sql = file_get_contents(__DIR__ . '/sql/get_parent_category.sql');
		
		$stmt = $DB->prepare($sql);
		$stmt->bind_param('i', $this->courseid);
		$stmt->execute();
		$data = $stmt->get_result()->fetch_array(MYSQLI_ASSOC);
		return $data['id'];
	}
	
	function add() {
		global $DB;
		
		$sql = file_get_contents(__DIR__ . '/sql/insert_category.sql');
		
		$stmt = $DB->prepare($sql);
		$stmt->bind_param('iis', $this->courseid, $this->get_parent_category(), $this->fullname);
		if (! $stmt->execute()) {
			echo $stmt->error;
		} else {
			echo "<p>Для курса №{$this->courseid} добавлена категория \"{$this->fullname}\"</p>";
		}
	}
}

?>
